<?php

/*
 * 优惠码
 */
class FavorableModel extends Model{
    
    
    public function setinviteCouponInfo($coupon_code){//对只能使用一次或者多次的优惠码做处理
        if($coupon_code){
            //$where['status'] = 2;//状态为2的是一次或多次使用的优惠码
            $where['coupon_code'] =  $coupon_code;//找出优惠码信息
            $coupon_info = $this->where($where)->find();
            
            if($coupon_info['status'] == 1){
                return true;
            }
            if($coupon_info['status'] == 0){
                 return 'failure';
            }
            $where['status'] = array(array('eq',2),array('eq',4), 'or');
    
            //$where['expiration_time'] = array('gt',time());//是否过期
            
            $info = $this->where($where)->find();
            
            if(!$info){         
                $where['status'] = 3;//状态为3的是黑色星期五优惠码
                $where['coupon_code'] =  $coupon_code;//找出优惠码信息
                //$where['expiration_time'] = array('gt',time());//是否过期
                $info = $this->where($where)->find();
                if(!$info){
                    return false;
                }else{//处理黑色星期五优惠码
                    if($info['status'] == 0){
                         return 'failure';
                    }
                    $fdata['status'] = 0;//1.把当前优惠卷设置为不能再使用
                    $fdata['id']= $info['id'];
                    $this->save($fdata);
                    return true;
                }
            }

            if($info['status'] == 2 && $info['usage_count'] == 0 && $info['count'] == 0){
                $fdata['status'] = 0;//1.把当前优惠卷设置为不能再使用
                $fdata['id']= $info['id'];
                $this->save($fdata);
                
            }else if($info['usage_count'] == 0 && $info['count'] != 0){
                $fdata['status'] = 0;//1.把当前优惠卷设置为不能再使用
                $fdata['id']= $info['id'];
                $this->save($fdata);
                
            }else if($info['usage_count'] > 0 && $info['count']){
                $fdata['usage_count'] = $info['usage_count'] - 1;
                $fdata['id']= $info['id'];
                if($fdata['usage_count'] == 0){
                    $fdata['status'] = 0;
                }
                 $this->save($fdata);
                
            }
                
                if(C('invite_switch')){//好友邀请开关
                    
                    $email_invite_items_db = M('email_invite_items');
                    $coupon_info = $email_invite_items_db->where('user_coupon_id='.$info['id'])->find();   
                    //逻辑上好友活动中使用优惠卷只有时间限制，其他没有任何限制，任何人都可以使用参加活动的其他人的优惠卷，所以在更改数据时不对使用对象做限制条件，使用优惠卷的人与数据库保存的使用的邀请对象有不同的可能
                    //因为好友邀请信息和被邀请人的优惠卷信息放在一条记录里 所以更新优惠卷使用时间可能需要查两次
                    if(!$coupon_info){
                        $coupon_info = $email_invite_items_db->where('invited_coupon_id='.$info['id'])->find();
                                if($coupon_info){
                                    $data['invite_coupon_time'] = time();
                                }
                        }else{
                            $data['user_coupon_time'] = time(); 
                        }

                    if($coupon_info['id']){  
                    $email_invite_items_db->where("id={$coupon_info['id']}")->save($data); //2.更新优惠卷使用时间   
                    }
                }
               return true; 
        }
    }
}
